﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Orchard;
using Orchard.ContentManagement.Drivers;
using SchoolPointe.RelatedContent.Models;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Records;

namespace SchoolPointe.RelatedContent.Drivers
{
    /// <summary>
    /// Implement this interface if you want to override the driver behavior for your relationship
    /// </summary>
    public interface IRelatedContentDriver : IDependency
    {
        string ContentType { get; }
        string RelationshipIdentifier { get; }

        string Prefix { get; }
        ContentItem ContentItem { get; }

        DriverResult Display(RelatedContentPart part, RelatedContentRelationship relationship, IEnumerable<ContentItemRecord> relatedItems, string displayType, dynamic shapeHelper);
        DriverResult Editor(RelatedContentPart part, RelatedContentRelationship relationship, IEnumerable<ContentItemRecord> relatedItems, IUpdateModel updater, dynamic shapeHelper);
    }
}
